/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import Bean.*;
import DataBase.TransacionException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
 *
 * @author Pashi
 */
public class DAOEvaluacion extends  AbstractDAO<Evaluacion>{

    @Override
    public void insertar(Evaluacion evaluacion) throws TransacionException {
        String sql = "insert into evaluacion(total,aciertos,errores,calificacion,numAcDrag,numAcSin,numAcPreg,idAlumno)values(?,?,?,?,?,?,?,?);";
        try {
            this.adminConsulta.iniciar();
            List<Object> params = new ArrayList();
            params.add(evaluacion.getTotal());
            params.add(evaluacion.getAciertos());
            params.add(evaluacion.getErrores());
            params.add(evaluacion.getCalificacion());
            params.add(evaluacion.getNumAcDrag());
            params.add(evaluacion.getNumAcSin());
            params.add(evaluacion.getNumAcPreg());
            params.add(evaluacion.getIdAlumno());
            adminConsulta.doUpdate(sql, params);
            this.adminConsulta.finalizar();
        } catch (SQLException ex) {
            adminConsulta.rollBack();
        }
    }

    @Override
    public void borrar(String condicion) throws TransacionException {
        String sql = "delete from evaluacion where idEvaluacion= ? ";
        try{
            this.adminConsulta.iniciar();
            List<Object> params = new ArrayList();
            params.add(condicion);
            this.adminConsulta.doUpdate(sql, params);
            this.adminConsulta.finalizar();
        }catch (SQLException ex) {
            adminConsulta.rollBack();
        }
    }

    @Override
    public void actualizar(Evaluacion evaluacion, String condicion) throws TransacionException {
      String sql = "update evaluacion set total=?,aciertos=?,errores=?,calificacion=?,numAcDrag=?,numAcSin=?,numAcPreg=?, idAlumno=? where idEvaluacion = ?";
        try{
            this.adminConsulta.iniciar();
            List<Object> params = new ArrayList();
            params.add(evaluacion.getTotal());
            params.add(evaluacion.getAciertos());
            params.add(evaluacion.getErrores());
            params.add(evaluacion.getCalificacion());
            params.add(evaluacion.getNumAcDrag());
            params.add(evaluacion.getNumAcSin());
            params.add(evaluacion.getNumAcPreg());
            params.add(evaluacion.getAlumno().getIdAlumno());
            params.add(condicion);
            adminConsulta.doUpdate(sql, params);
            this.adminConsulta.finalizar();
        }catch(SQLException ex){
            adminConsulta.rollBack();
        }
    }

    @Override
    public List<Evaluacion> buscar(String condicion, List<Object> params) {
         List<Evaluacion> result=new ArrayList();
         String sql = "select * from evaluacion "+condicion;
         pstmt= adminConsulta.prepareTheStatementForQuery(sql, params);
        result = adminConsulta.ejecutarSeleccion(pstmt, Evaluacion.class);
        return result;
    }

    public List<Evaluacion> getEvaluaciones(){
        return buscar("",null);
    }
    
    public List<Evaluacion> getEvaluacionByAlumno(String idAlumno){
        String condicion = "where alumno = ?";
        List<Object> params = new ArrayList();
        params.add(idAlumno);
        return buscar(condicion,params);
    }
    
    
}
